package written_examination_questions;

import java.util.HashMap;
import java.util.Map;

//class Node {
//    int val;
//    Node next;
//    Node random;
//
//    public Node(int val) {
//        this.val = val;
//        this.next = null;
//        this.random = null;
//    }
//}

public class Demo20251120 {
    // 随机链表的复制
/*    public Node copyRandomList(Node head) {
        if (head == null) return null;

        // 创建哈希表，确立对应关系
        Map<Node, Node> map = new HashMap<>();

        // 第一次遍历，建立映射关系，key 为老节点的地址， val 为新节点的地址
        Node cur = head;
        while (cur != null) {
            map.put(cur, new Node(cur.val));
            cur = cur.next;
        }

        // 第二次遍历，设置新节点的next和random
        cur = head;
        while (cur != null) {
            Node newNode = map.get(cur); // 头结点
            newNode.next = map.get(cur.next);
            newNode.random = map.get(cur.random);
            cur = cur.next;
        }

        return map.get(head);
    }*/
}
